<?php
/*! \brief
 * This is abstract class of SqlGen
 * This is class main purpose for generate SQL statement of CREATE TABLE & DROP TABLE & TRUNCATE TABLE
 * \author William Su
 */
abstract class ASqlGen
{
    /**
     * @var WF
     */
    protected $objFramework;
    abstract public function getCreateDatabase();
    abstract public function getCreateTableWidget();
    abstract public function getCreateTableWidgetCategory();
    abstract public function getCreateTableWidgetCategoryMapping();
    abstract public function getCreateTableWpUpdateFilter();
    abstract public function getCreateTableWpUpdateLog();
    abstract public function getCreateTableProxylist();
    abstract public function getCreateTableServerlist();
    abstract public function getCreateTableServerlisttype();
    abstract public function getCreateTableUserdata();
    abstract public function getCreateTableUsers();
    protected $strPrefixSymbolTable;
    protected $strSuffixSymbolTable;
    public function __construct($objFramework, $strPrefixSymbolTable, $strSuffixSymbolTable){
        $this->strPrefixSymbolTable = $strPrefixSymbolTable;
        $this->strSuffixSymbolTable = $strSuffixSymbolTable;
        $this->objFramework = $objFramework;
    }
    public function getDropTableWidget(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWidgetCategory(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET_CATEGORY' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWidgetCategoryMapping(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET_CATEGORY_MAPPING' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWpUpdateFilter(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WP_UPDATE_FILTER' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWpUpdateLog(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WP_UPDATE_LOG' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableProxylist(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'proxylist' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableServerlist(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'serverlist' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableServerlisttype(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'serverlisttype' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableUserdata(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'userdata' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableUsers(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'users' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableWidget(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'WIDGET' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableWidgetCategory(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'WIDGET_CATEGORY' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableWidgetCategoryMapping(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'WIDGET_CATEGORY_MAPPING' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableWpUpdateFilter(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'WP_UPDATE_FILTER' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableWpUpdateLog(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'WP_UPDATE_LOG' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableProxylist(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'proxylist' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableServerlist(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'serverlist' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableServerlisttype(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'serverlisttype' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableUserdata(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'userdata' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getTruncateTableUsers(){
        $ret = 'DELETE FROM ' . $this->strPrefixSymbolTable . 'users' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableContainer(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'CONTAINER' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWidgetComponent(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET_COMPONENT' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWidgetComponentCategory(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET_COMPONENT_CATEGORY' . $this->strSuffixSymbolTable;
        return $ret;
    }
    public function getDropTableWidgetComponentCategoryMapping(){
        $ret = 'DROP TABLE ' . $this->strPrefixSymbolTable . 'WIDGET_COMPONENT_CATEGORY_MAPPING' . $this->strSuffixSymbolTable;
        return $ret;
    }
}